package com.mwh.yuantu.dao;

import java.util.List;
import java.util.Map;

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.mwh.yuantu.dao.mapper.MediaInfoMapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.mwh.yuantu.entity.MediaInfoEntity;

/**
 * (MediaInfo)表数据库访问层
 *
 * @author maweihong
 * @since 2023-11-01 09:47:31
 */
@Service
public class MediaInfoDao extends ServiceImpl<MediaInfoMapper , MediaInfoEntity> {

    @Autowired
	private MediaInfoMapper mediaInfoMapper;

    /**
     * 查询媒体列表
     * @param param
     * @return
     */
    public List<MediaInfoEntity> list(Map<String, Object> param){
        return mediaInfoMapper.list(param);
    }

    /**
     * 插入一条媒体信息
     * @param alterSql
     * @return
     */
    public int insert(@Param("alterSql") String alterSql){
        return mediaInfoMapper.insert(alterSql);
    }

    /**
     * 更新一条媒体信息
     * @param alterSql
     * @return
     */
    public int update(@Param("alterSql") String alterSql){
        return mediaInfoMapper.update(alterSql);
    }

    /**
     * 根据主键查询媒体信息
     * @param mediaId
     * @return
     */
    public MediaInfoEntity selectById(String mediaId){
        return mediaInfoMapper.selectById(mediaId);
    }

    /**
     * 根据主键，查询该视频名称
     * @param mediaId
     * @return
     */
    public String selectBiaotiById(String mediaId){
        return mediaInfoMapper.selectBiaotiById(mediaId);
    }

    /**
     * 根据主键，获取媒体信息
     * @param mediaId 媒体信息的主键
     * @return
     */
    public Map<String, Object> selectByMediaId(@Param("mediaId") String mediaId){
        return mediaInfoMapper.selectByMediaId(mediaId);
    }

    /**
     * 根据关键词，查询符合条件的媒体信息，获取其主键（这里只取10条记录）
     * @param keyWord 关键词
     * @return
     */
    public List<String> searchIdByKeyWord(@Param("keyWord") String keyWord){
        return mediaInfoMapper.searchIdByKeyWord(keyWord);
    }

    /**
     * 根据筛选结果，查询媒体列表
     * @param selectSql
     * @return
     */
    public List<Map<String, Object>> listByFilter(@Param("selectSql") String selectSql){
        return mediaInfoMapper.listByFilter(selectSql);
    }

    /**
     * 更新对应的媒体的时间、状态等
     * @param mediaInfo
     * @return
     */
    public int updateMedia(MediaInfoEntity mediaInfo){
        return mediaInfoMapper.updateMedia(mediaInfo);
    }

    /**
     * 查询标题对应的媒体的数量
     * @param biaoti 标题
     * @param mediaId 主键
     * @return
     */
    public int countByBiaoti(@Param("biaoti") String biaoti, @Param("mediaId") String mediaId){
        return mediaInfoMapper.countByBiaoti(biaoti,mediaId);
    }

    /**
     * 批量更新媒体
     * @param param
     */
    public int batchUpdate(Map<String, Object> param){
        return mediaInfoMapper.batchUpdate(param);
    }

    /**
     * 向媒体表中添加字段
     * @param alterSql
     */
    public void alter(@Param("alterSql") String alterSql){
        mediaInfoMapper.alter(alterSql);
    }

    /**
     * 查询媒体信息，返回map
     * @param selectSql
     * @return
     */
    public Map<String, Object> selectSqlById(@Param("selectSql") String selectSql){
        return mediaInfoMapper.selectSqlById(selectSql);
    }

    /**
     * 根据接口自定义查询数据
     * @param selectSql
     * @return
     */
    public List<Map<String, Object>> selectSqlByApi(@Param("selectSql") String selectSql){
        return mediaInfoMapper.selectSqlByApi(selectSql);
    }

    /**
     * 批量删除
     * @param mediaIdArr 主键数组
     */
    public int batchDelete(@Param("mediaIdArr") String[] mediaIdArr){
        return mediaInfoMapper.batchDelete(mediaIdArr);
    }
}

